The present invention relates to a pulse motor control apparatus for controlling speed and rotating position of a pulse motor on the basis of a pulse signal and, more particularly, to a pulse motor control apparatus adapted to prevent a step-out phenomenon which occurs when the rotating direction of the pulse motor is switched to the opposite direction when the pulse motor is rotating.
As a conventional pulse motor control apparatus, there has been known an apparatus as shown in, e.g., FIG. 1. In the diagram, a frequency dividing counter 10 performs the count-down operation on the basis of a clock signal which is supplied from a clock pulse generator 20. Speed instruction data is inputted from a speed setting device 22 to a preset terminal PS of the counter 10. Upon completion of the count-down operation, a borrow signal is outputted to a borrow terminal BO of the counter 10. The borrow terminal BO is connected to a load terminal LD of the counter 10. The borrow terminal BO is further connected to one input of each of AND gates 12 and 14 each having two input terminals, respectively.
On the other hand, position instruction data indicative of a rotating position (hereinafter, simply referred to as a "position") of a rotor of a pulse motor 24 is supplied to an input terminal A of comparator 16 from a position setting device 26. An output terminal Q of a position counter 18 is connected to another input terminal B of the comparator 16. A count value of the position counter 18 is outputted to the output terminal Q. An output of the AND gate 14 is connected to a count-up terminal CU of the position counter 18. An output of the AND gate 12 is connected to a count-down terminal CD of the counter 18. The position counter 18 executes the count-up and count-down operations in response to pulses which are inputted to the terminals CU and CD. The count value of the counter 18 is compared with a value of the position instruction data by the comparator 16. Namely, inputs A and B are compared and when A is smaller than B, a signal at a high ("H") level as a logic value is outputted to the AND gate 12. When A is larger than B, a signal at a high ("H") level as a logic value is outputted to the AND gate 14.
The outputs of the AND gates 12 and 14 are connected to a drive circuit 28 of the pulse motor 24, respectively, thereby allowing a driving pulse signal to be inputted to the drive circuit 28. The output of the AND gate 12 serves as a CCW instruction pulse to rotate the pulse motor counterclockwise (CCW). The output of the AND gate 14 serves as a CS instruction pulse to rotate the pulse motor clockwise (CW).
The operation of this conventional apparatus will then be described. First, the speed instruction data of the rotating speed set by the speed setting device 22 is inputted to the preset terminal PS of the frequency dividing counter 10. The counter 10 always executes the count-down operation in response to the clock signal from the clock pulse generator 20 and outputs a borrow pulse to the borrow terminal BO each time the count-down operation is completed. Since the borrow terminal BO is connected to the load terminal LD, the pulse is inputted to the load terminal LD. Therefore, the speed instruction data (for example, this data assumes "n" in the decimal expression) inputted to the preset terminal PS is supplied to the counter 10 and the count-down operations are carried out such that "n".fwdarw."n-1".fwdarw."N-2" . . . "3" .fwdarw."2".fwdarw."1".fwdarw."0". After completion of the count-down operations, the speed instruction data "n" is again taken into the counter 10 and the operations similar to the above are repeated. Namely, the pulse signal of which the clock signal was frequency divided by the speed instruction data is outputted to the borrow terminal BO.
The period of the pulse signal which is outputted from the borrow terminal BO is inversely proportional to a set speed of the pulse motor. The period of the borrow pulse signal is large when the rotating speed of the pulse motor is low. The period of the borrow pulse signal is small when the speed is high.
On the other hand, the position instruction data of the pulse motor set by the position setting device 26 is inputted to the input terminal A of the comparator 16. The count value of the position counter 18 is inputted to the input terminal B of the comparator 16. Now, assuming that the rotor of the pulse motor 24 is located at a predetermined reference position, the count value of the position counter 18 is "0", namely, "B=0" (in the decimal expression).
It is now assumed that "a" (decimal expression) is inputted as the position instruction data. In this case, since "a" is larger than 0, an "H" level signal is outputted from the comparator 16 to the AND gate 14. Thus, the pulse signal which is outputted from the borrow terminal BO of the frequency dividing counter 10 passes through the AND gate 14 and is inputted to the drive circuit 28 of the pulse motor 24, thereby allowing the pulse motor 24 to be rotated clockwise by a predetermined amount. Simultaneously, the pulse signal is inputted to the count-up terminal CU of the position counter 18 and the count value of the counter 18 changes from "0" to "1". When this count value is smaller than the position instruction data "a", the above-mentioned operations are repeated.
When the pulse motor 24 continuously rotates clockwise and the count value of the counter 18 becomes "a", the values of both inputs A and B of the comparator 16 become "a" and coincide with the position instruction data "a". Thus, an "H" level signal is not outputted to the AND gates 12 and 14, so that the pulse motor 24 stops. Next, it is assumed that "b" (b&lt;a) is given as the position instruction data to the comparator 16. In this case, an "H" level signal is outputted from the comparator 16 to the AND gate 12. Therefore, the pulse signal which is outputted from the borrow terminal BO of the counter 10 passes through the AND gate 12 and is inputted to the drive circuit 28 of the pulse motor 24, thereby allowing the pulse motor 24 to be rotated counterclockwise by a predetermined amount. Simultaneously, the pulse signal is inputted to the count-down terminal CD of the position counter 18, so that the count value of the counter 18 is decreased from "a" to "a-1". When this count value is larger than the position instruction data "b", the above-mentioned operations are repeated.
When the pulse motor 24 continuously rotates counterclockwise and the count value of the position counter 18 becomes "b", the values of the inputs A and B of the comparator 16 become "b" and coincide with the position instruction data "b", so that the pulse motor 24 stops.
As described above, according to the conventional example shown in FIG. 1, the speed is controlled by changing the period of the pulse which is outputted from the frequency dividing counter 10. Further, the current position is detected by the position counter 18 and compared with the instructed position, thereby allowing the pulse motor 24 to be rotated clockwise (CW) or counterclockwise (CCW).
However, such a conventional technology has the following drawbacks. In general, pulse motors have the characteristics such that the torque of the pulse motor decreases as the moving velocity, i.e., the rotating speed increases and the pulse motor moves and rotates while vibrating for each step due to the influence of the inertial load around the rotor.
For example, as shown in FIG. 2, in the case where the rotor of the pulse motor sequentially advances in a stepwise manner from the position of step "", the portion indicated by a broken line in FIG. 2 is as enlargedly shown in FIG. 3. Namely, the rotor vibrates around a position P where the rotor must stop and settles to the position P after an expiration of a constant period of time. Therefore, if a high speed range is instructed as the rotating speed, the rotating speed of the rotor is shifted to the speed position of the next step while the rotor is vibrating. However, at this time, if the position instruction is changed to a command of reverse motion, the torque component on the rotor of such command is superimposed on the holding and inertia torques at the new detent position of the rotor, so that no resultant torque on the rotor can be produced and a step-out phenomenon occurs due to the lack of torque. Consequently, the motor cannot be controlled.